﻿<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        var capturedValues = [];
        function getCapturedValue() {
            var obtainedValue;
            if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)
                obtainedValue = window.frames["contenedor"].contentDocument.getElementById("tiempoJs").value;
            else
                obtainedValue = window.frames["contenedor"].document.getElementById("tiempoJs").value;

            capturedValues.push(obtainedValue);
            //alert("Valor capturado " + obtainedValue);
        }
        //Invocar al boton que ejecuta la medicion en la pagina original de carga
        function invokeInternalAction() {
            if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)
                window.frames["contenedor"].contentDocument.getElementById("botonClick").click();
            else
                window.frames["contenedor"].document.getElementById("botonClick").click();


        }

        function loadPage() {
            var urlText = document.getElementById("urlText").value;
            if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)
                window.frames["contenedor"].src = urlText;
            else
                window.frames["contenedor"].location = urlText;
        }

        function repeatableInvoker() {
            var urlText = document.getElementById("urlText").value;
            for (var i = 0; i < 385; i++) {
                if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)
                    window.frames["contenedor"].src = urlText;
                else
                    window.frames["contenedor"].location = urlText;
                invokeInternalAction();
                getCapturedValue()
            }

            var sumatoria = 0;
            for (var i = 0; i < capturedValues.length; i++) {
                sumatoria += parseFloat(capturedValues[i]);
            }

            var promedio = sumatoria / capturedValues.length;

            //Calculo del error relativo
            var sumaErroresRelativosParciales = 0;
            for (var i = 0; i < capturedValues.length; i++) {
                sumaErroresRelativosParciales += parseFloat(capturedValues[i]) - promedio;
            }
            var errorAbsolutoTotal = sumaErroresRelativosParciales / parseFloat(385);
            var errorRelativoTotal = errorAbsolutoTotal / promedio;
            var errorPorcentual = errorRelativoTotal * parseFloat(100);

            //Calculo de la desviacion estandar
            var sumatoriaCuadradaDiferenciaParcial = 0;
            for (var i = 0; i < capturedValues.length; i++) {
                sumatoriaCuadradaDiferenciaParcial += Math.pow(parseFloat(capturedValues[i]) - promedio, 2);
            }

            var desviacionEstandar = Math.sqrt(sumatoriaCuadradaDiferenciaParcial / parseFloat(384));

            var icinicial = promedio - 1.96 * (desviacionEstandar / Math.sqrt(parseFloat(384)));
            var icfinal = promedio + 1.96 * (desviacionEstandar / Math.sqrt(parseFloat(384)));


            alert("Promedio: " + promedio + "\nError Absoluto: " + errorAbsolutoTotal + "\nError Relativo: "
                + errorRelativoTotal + "\nError Porcentual: " + errorPorcentual + "\nDesviacion Estandar: " + desviacionEstandar
                + "\nIntervalo de confianza: [" + icinicial + " a " + icfinal + "]");
        }

    </script>
    <style type="text/css">
        #urlText {
            width: 941px;
        }
    </style>
</head>
<body>
    <p>Frame principal</p>
    <p>
        Url:
        <input id="urlText" type="text" />
    </p>
    <input type="button" name="captureMetric" value="Load Page" onclick="loadPage()" />

    <input type="button" name="RepeteableInvoker" value="Repeteable Invoker" onclick="repeatableInvoker()" />
    <iframe id="contenedor" width="100%" height="400px"></iframe>
</body>
</html>
